package pe.com.certicom.ittsa.model.dao;

import java.util.List;

import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;

import pe.com.certicom.ittsa.framework.exception.DaoException;
import pe.com.certicom.ittsa.framework.dat.DaoHelper;
import pe.com.certicom.ittsa.model.bean.BeanAsiento;
import pe.com.certicom.ittsa.model.bean.BeanGeoCode;
import pe.com.certicom.ittsa.model.bean.ClienteBean;
import pe.com.certicom.ittsa.model.bean.ReporteDispAsientoBean;

public class DispAsientoDAO {
	
private static final Log log = LogFactory.getLog(DispAsientoDAO.class);
	
	public DispAsientoDAO(){		
	}
	
	@SuppressWarnings("unchecked")
	public static List<BeanGeoCode> listarOrigen() throws DaoException{ 
		log.info(" listarOrigen");
		Object[] objParametros =  new Object[]{
		1		
		};
		return DaoHelper.datoLista("Exe_cer_sp_sel_listar_depart",BeanGeoCode.class,objParametros);	
	}
	
	@SuppressWarnings("unchecked")
	public static List<BeanGeoCode> listarDestino(int origen) throws DaoException{ 
		log.info(" listarDESTINO");
		Object[] objParametros =  new Object[]{
				origen		
		};
		return DaoHelper.datoLista("Exe_cer_sis_sp_sel_origen_destinos",BeanGeoCode.class,objParametros);	
	}
	@SuppressWarnings("unchecked")
	public static List<ReporteDispAsientoBean> listarReporte(BeanGeoCode departamento) throws DaoException{ 
		log.info(" listarReporteDispASientoComprapasaje");
		
		
		System.out.println(departamento.getDepartamentoOrigen() + " "+	departamento.getDepartamento()+" "+	departamento.getFecha());
		Object[] objParametros =  new Object[]{
				departamento.getDepartamentoOrigen(),
				departamento.getDepartamento(),
				departamento.getFecha()
		};
		return DaoHelper.datoLista("Exe_cer_sp_sel_listar_viajes ",ReporteDispAsientoBean.class,objParametros);	
	}
	
	public static Object buscarCliente(String numDoc) throws DaoException{		
		log.info("buscar cliente");		
		Object[] objParametros =  new Object[] {numDoc};
		return	DaoHelper.dato("Exe_cer_sp_consulta_pasajeros_release",ClienteBean.class,objParametros);
	}
	
	@SuppressWarnings("unchecked")
	
	public static List<ClienteBean> listarClienteDni(String num_doc) throws DaoException{ 
		log.info(" listarDatoPyme");		
		Object[] objParametros =  new Object[]{
				num_doc
		};
		return DaoHelper.datoLista("Exe_cer_sp_consulta_pasajeros_release",ClienteBean.class, objParametros);	
	}
	

	public static Object obtenerDniCliente(String dni) throws DaoException{ 
			log.info(" obtener Dni del cliente");
			Object[] objParametros =  new Object[]{
				dni
			};
		return DaoHelper.dato("Exe_cer_sp_consulta_pasajeros_release",ClienteBean.class, objParametros);	
		}

	
	

	public static Object obtenerCodigoGenerado(String dni) throws DaoException{ 
		log.info(" eduardo");
		Object[] objParametros =  new Object[]{
			dni
		};
	return DaoHelper.dato("Exe_cer_sp_obtener_orden",ClienteBean.class, objParametros);	
	}
	
	//ivonne
	public static List<ClienteBean> obtenerNumeroOrden(double total_pago) throws DaoException{ 
		System.out.println(total_pago);
		String total=String.valueOf(total_pago);
		System.out.println("el monto string;"+total);
		
		log.info(" obtener el numero de orden");
		Object[] objParametros =  new Object[]{
				total
		};

	return DaoHelper.datoLista("Exe_cer_sis_sp_registrarpago",ClienteBean.class, objParametros);	
}
	
	
	
	public static void 	registrarTotalPrecio(double total_pago) throws DaoException{ 
		System.out.println(total_pago);
		String total=String.valueOf(total_pago);
		System.out.println("el monto string;"+total);
		
		log.info(" obtener el numero de orden");
		Object[] objParametros =  new Object[]{
				total
		};

	DaoHelper.execute("Exe_cer_sis_sp_registrarpago", objParametros);	
}
	

	public static void registrarCliente(ClienteBean cliente,BeanAsiento asiento) throws DaoException{ 
		log.info(" registrar reserva");		
		System.out.println("FechaPago: "+asiento.getFechaPago() );
		System.out.println("Fecha: "+asiento.getFecha() );
		
		
		Object[] objParametros =  new Object[]{
				Integer.valueOf(cliente.getCodPasaj()),			
				cliente.getNum_doc(),
				cliente.getNombre(),
				cliente.getPaterno(),
				cliente.getMaterno(),
				Integer.valueOf(cliente.getEdad()),
				cliente.getFono(),
				cliente.getSexo(),
				0,
				cliente.getRuc(),
				cliente.getDescripcion(),
				cliente.getDireccion(),
				cliente.getReferencia(),
				asiento.getOrigen(),
				asiento.getDestino(),
				"Web",
				asiento.getFechaPago().trim(),
				Integer.valueOf(asiento.getAsiento()),			
				asiento.getFechaPago().trim(),
				asiento.getHoraEspera(),	
				//asiento.getHoraPago(),
				asiento.getFecha().trim(),
				asiento.getHora(),
				"WEB",
				asiento.getPrecio(),
				cliente.getCiudad(),
				cliente.getDireccion(),
				cliente.getRpta()				
		};
	DaoHelper.execute("SP_cer_ReservaPasaje", objParametros);	
	}
	
	
	
	public static void registrarPrePagado(ClienteBean cliente,BeanAsiento asiento) throws DaoException{ 
		log.info(" registrar pre pagado");				
		Object[] objParametros =  new Object[]{
				Integer.valueOf(cliente.getCodPasaj()),			
				cliente.getNum_doc(),
				cliente.getNombre(),
				cliente.getPaterno(),
				cliente.getMaterno(),
				Integer.valueOf(cliente.getEdad()),
				cliente.getFono(),
				cliente.getSexo(),
				0,
				cliente.getRuc(),
				cliente.getDescripcion(),
				cliente.getDireccion(),
				cliente.getReferencia(),
				asiento.getOrigen(),
				asiento.getDestino(),
				"Web",
				asiento.getFechaPago(),
				Integer.valueOf(asiento.getAsiento()),				
				asiento.getFecha(),
				asiento.getHora(),
				"WEB",
				asiento.getPrecio(),
				cliente.getCiudad(),
				cliente.getRpta(),
				"600",
				1
								
		};
	DaoHelper.execute("SP_cer_VentaPrepagado1", objParametros);	
	}
	
	
}
